 // import { downloadIamge,generateResume } from '@/utils/download'
 
/* 下载图片
 * imgsrc  图片地址
 * name 图片下载后的名字【包含图片后缀】 如"a.jpg"
 * jc 2024.11.14
 */
export const downloadIamge = async (url, filename) => {
  if (!url) return console.error('未获取到入参 url');;
  try {
    const response = await fetch(url); //发送请求获取图片数据
    const blob = await response.blob(); //将响应数据转换为 Blob 对象。
    const a = document.createElement('a'); //创建一个临时的 URL。
    a.href = URL.createObjectURL(blob); //使用 < a > 标签下载图片。
    a.download = filename || url.split('/').pop();;
    document.body.appendChild(a);
    a.click();
    document.body.removeChild(a);
  } catch (error) {
    console.error('下载图片时出错:', error);
  }
}

/* 下载文件
 * response  文件流
 * filename 文件下载后的名字 
 */
export const downloadFile = async (response, filename) => {
  if (!response) return console.error('未获取到入参 response');
    const url = window.URL.createObjectURL(
      new Blob(
        [response],
        { type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'}
      )
    )
    const link = document.createElement('a')
    link.style.display = 'none'
    link.href = url
    link.setAttribute('download', `${filename}` || 'template.xlsx')

    document.body.appendChild(link)
    link.click()
    document.body.removeChild(link)
  
  // const blob = new Blob([response], { type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=utf-8' });
    //   const a = document.createElement('a'); //创建一个临时的 URL。
    //   a.href = URL.createObjectURL(blob); //使用 < a > 标签下载图片。
    //   a.download = filename || url.split('/').pop();;
    //   document.body.appendChild(a);
    //   a.click();
    //   document.body.removeChild(a);
    // } catch (error) {
    //   console.error('下载文件时出错:', error);
    // }
  
}

// 使用示例
// downloadImage('https://example.com/image.jpg', 'image.jpg');

// pdfMethod.js
import html2canvas from 'html2canvas'
import JsPDF from 'jspdf'
export const generateResume = (el, name) => {
  console.log(el)
  html2canvas(el).then(canvas => {
    let contentWidth = canvas.width
    let contentHeight = canvas.height
    console.log('生成的canvas高度')
    //一页pdf显示html页面生成的canvas高度;
    let pageHeight = (contentWidth / 592.28) * 841.89
    //未生成pdf的html页面高度
    let leftHeight = contentHeight
    //页面偏移
    let position = 0
    //a4纸的尺寸[595.28,841.89]，html页面生成的canvas在pdf中图片的宽高
    let imgWidth = 595.28
    let imgHeight = (592.28 / contentWidth) * contentHeight
    let pageData = canvas.toDataURL('image/jpeg', 1.0)
    let pdf = new JsPDF('', 'pt', 'a4')
    //有两个高度需要区分，一个是html页面的实际高度，和生成pdf的页面高度(841.89)
    //当内容未超过pdf一页显示的范围，无需分页
    if (leftHeight < pageHeight) {
      pdf.addImage(pageData, 'JPEG', 0, 0, imgWidth, imgHeight)
    } else {
      while (leftHeight > 0) {
        //arg3-->距离左边距;arg4-->距离上边距;arg5-->宽度;arg6-->高度
        pdf.addImage(pageData, 'JPEG', 0, position, imgWidth, imgHeight)
        leftHeight -= pageHeight
        position -= 841.89
        //避免添加空白页
        if (leftHeight > 0) {
          //添加新页
          pdf.addPage()
        }
      }
    }
    pdf.save(`${name}.pdf`)
  })
} 
